#include <iostream>
#include <type_traits>

class A {};

int main() {
  std::cout << std::boolalpha;
  std::cout << std::is_lvalue_reference<A>::value << " "
            << std::is_rvalue_reference<A>::value << '\n'; // false false
  std::cout << std::is_lvalue_reference<A &>::value << " "
            << std::is_rvalue_reference<A &>::value << '\n'; // true
  std::cout << std::is_lvalue_reference<A &&>::value << " "
            << std::is_rvalue_reference<A &&>::value << '\n'; // false true
  std::cout << std::is_lvalue_reference<int>::value << " "
            << std::is_rvalue_reference<int>::value << '\n'; // false false
  std::cout << std::is_lvalue_reference<int &>::value << " "
            << std::is_rvalue_reference<int &>::value << '\n'; // true false
  std::cout << std::is_lvalue_reference<int &&>::value << " "
            << std::is_rvalue_reference<int &&>::value << '\n'; // false true
}
